$(function () {
  var case_datagrid = $("#case_datagrid");
  var case_dialog = $("#case_dialog");
  var case_form = $("#case_form");
  var $editBtn = $("#editBtn");
  var $checkBtn = $("#checkBtn");
  var detail_title = $("#detail_title");
  var detail_dialog = $("#detail_dialog");
  var text1 = $("#message-text1");
  var text2 = $("#message-text2");
  // 用于回选数据
  var show_reporter = $("#show_reporter");
  var show_gender = $("#show_gender");
  var show_tel = $("#show_tel");
  var show_caseTime = $("#show_caseTime");
  var show_caseSpot = $("#show_caseSpot");
  var show_insureInfoSn = $("#show_insureInfoSn");
  var show_carNum = $("#show_carNum");
  var show_accidentResponsibility = $("#show_accidentResponsibility");
  var show_accidentDescription = $("#show_accidentDescription");
  var show_remarks = $("#show_remarks");
  // 状态数据
  var stateMap = {
    text: {
      '0': '<span class="text-danger">没有该保单</span>',
      '1': '<span class="text-success">已理赔</span>',
      '2': '<span class="text-danger">保单失效</span>',
      '3': '<span class="text-warning">待验证</span>',
      '4': '<span class="text-info">验证完,待填理赔</span>',
      '5': '<span class="text-primary">待审核</span>',
      '6': '<span class="text-danger">被拒审</span>',
      '7': '<span class="text-primary">审核完,待付款</span>',
      '8': '<span class="text-danger">废弃单</span>',
    },
    // 是否可编辑
    editable: {
      '0': true,
      '1': false,
      '2': true,
      '3': true,
      '4': false,
      '5': false,
      '6': false,
      '7': false,
      '8': false,
    }
  }
// 数据 表
  case_datagrid.datagrid({
    url: "/caseInfo/query.do",
    fitColumns: true, // 自适应列
    fit: true,
    striped: true,  // 斑马线
    pagination: true,
    rownumbers: true,
    pageSize: 10,
    pageNumber: 1,
    singleSelect: true, // 单选
    toolbar: "#case_toolbar",
    columns: [
      [
        // {field: 'id', checkbox: true},
        {
          field: 'status', title: '当前状态', width: 80, formatter: function (value) {
            return stateMap.text[value] ? stateMap.text[value] : '未知'
          }
        },
        {field: 'reporter', title: '报案人姓名', width: 80},
        {field: 'gender', title: '性别', width: 80, formatter: val => val ? '男' : '女'},
        {field: 'tel', title: '联系电话', width: 80},
        {field: 'caseTime', title: '发生时间', width: 80},
        {field: 'caseSpot', title: '发生地点', width: 80},
        {field: 'insureInfoSn', title: '保单编号', width: 80},
        {field: 'carNum', title: '车牌号', width: 80},
        {field: 'inputUser', title: '录入员工', width: 80, formatter: user => user ? user.username : ''},
      ]
    ],
    onSelect: function (index, row) {
      $editBtn.linkbutton({text: stateMap.editable[row.status] ? "编辑" : '查看'});
      $checkBtn.linkbutton(row.status == 3 ? 'enable': 'disable');
    }
  });
  // 对话 框
  var css = {
    width: '100%',
    height: '100px'
  };
  function clearForm() {
    case_form.form('clear');
    text1.css(css)
    text2.css(css)
    detail_dialog.modal('hide');
  }
  function openSetTitle(str) {
    detail_title.html(str);
    detail_dialog.modal('show');
  }

  var objMethod = {
    add: function () {
      clearForm()
      detail_dialog.removeClass("showSpan");
      openSetTitle("新增备案表")
    },
    edit: function () {
      var row = case_datagrid.datagrid("getSelected");
      if (!row) {
        $.messager.alert("温馨提示", '请选择一条数据', 'warning')
        return
      }
      // 只 查看数据
      if (!stateMap.editable[row.status]) {
        detail_dialog.addClass("showSpan")
        // 回选数据
        show_reporter.text(row.reporter)
        show_gender.text(row.gender ? "男": "女")
        show_tel.text(row.tel)
        show_caseTime.text(row.caseTime)
        show_caseSpot.text(row.caseSpot)
        show_insureInfoSn.text(row.insureInfoSn)
        show_carNum.text(row.carNum)
        show_accidentResponsibility.text(row.accidentResponsibility)
        show_accidentDescription.text(row.accidentDescription)
        show_remarks.text(row.remarks)
        openSetTitle("查看报案信息")
        return;
      }
      // 只 编辑数据
      detail_dialog.removeClass("showSpan");
      // 回选数据
      case_form.form("load", row)
      openSetTitle("编辑报案信息")
    },
    check: function () {
      var row = case_datagrid.datagrid("getSelected");
      // 只有 待验证的 才可以 往上 提交
      if(row.status != 3){
        return
      }
      if (!row) {
        $.messager.alert("温馨提示", '请选择一条数据', 'warning')
        return
      }
      $.messager.confirm('确认', '你确认案件属实吗？', function (r) {
        if (!r) return;
        $.get('/caseInfo/checkCase.do', {id: row.id}, function (data) {
          if (data.success) {
            $.messager.alert("温馨提示", '操作成功', 'info', function () {
              case_datagrid.datagrid("reload");  // 刷新
            })
          } else {
            $.messager.alert("温馨提示", '操作失败:' + data.msg, 'info');
            case_datagrid.datagrid("reload");  // 刷新
          }
        })
      })
    },
    save: function () {
      // 提交表单
      case_form.form("submit", {
        url: "/caseInfo/saveOrUpdate.do",
        onSubmit: function (params) {

        },
        success: function (data) {
          data = $.parseJSON(data)
          if (data.success) {
            $.messager.alert("温馨提示", '保存成功', 'info', function () {
              clearForm()
              case_datagrid.datagrid("reload");  // 刷新
            })
          } else {
            $.messager.alert("温馨提示", '保存失败', 'info', function () {
            })
          }
        }
      })
    },
      cancel:function () {
          case_dialog.dialog('close');
      },
    query: function () {
      var keyword = $("#keyword").textbox('getValue');
      var minCaseTime = $("#minCaseTime").textbox('getValue');
      var maxCaseTime = $("#maxCaseTime").textbox('getValue');
      var status = $("#status").textbox('getValue');
      $('#case_datagrid').datagrid('load', {
        keyword: keyword,
        minCaseTime: minCaseTime,
        maxCaseTime: maxCaseTime,
        'status[0]': status
      })
    }
  }
  // 绑定事件
  $('a[data-cmd]').click(function () {
    objMethod[$(this).data('cmd')]();
  })
  // 保存事件
  $("#save_btn").click(objMethod.save)
  // 弹出框事件
  $(".close_btn").click(clearForm)


})

